<?php
namespace Amis\other;

use Amis\type\Api;
use Amis\Basics\AmisBasics;

class WizardStep extends AmisBasics
{
    /**
     * 步骤标题
     * @param string $title
     * @return $this
     */
    public function title(string $title)
    {
        $this->title = $title;
        return $this;
    }

    /**
     * 展示模式，选择：horizontal 或者 vertical
     * @param bool $mode
     * @return $this
     */
    public function mode(string $mode)
    {
        if (in_array($mode, ['normal', 'horizontal', 'inline']))
            $this->mode = $mode;
        return $this;
    }

    /**
     * 当为水平模式时，用来控制左右占比
     * @param  $horizontal
     * @return $this
     */
    public function horizontal($horizontal)
    {
        $this->horizontal']['label']  = $horizontal['label'] ?: '';
        $this->horizontal']['right'] = $horizontal['right'] ?: '';
        $this->horizontal']['offset = $horizontal['offset'] ?: '';
        return $this;
    }

    /**
     * 最后一步保存的接口。
     * @param Api $api
     * @return $this
     */
    public function api(Api $api)
    {
        $this->api = $api;
        return $this;
    }

    /**
     * 初始化数据接口
     * @param string $initApi
     * @return $this
     */
    public function initApi(string $initApi)
    {
        $this->initApi = $initApi;
        return $this;
    }

    /**
     * 初始是否拉取数据。
     * @param  $initFetch
     * @return $this
     */
    public function initFetch($initFetch)
    {
        $this->initFetch = $initFetch;
        return $this;
    }

    /**
     * 初始是否拉取数据，通过表达式来配置
     * @param $initFetchOn
     * @return $this
     */
    public function initFetchOn($initFetchOn)
    {
        $this->initFetchOn = $initFetchOn;
        return $this;
    }

    /**
     * 当前步骤的表单项集合，请参考 FormItem。
     * @param $body
     * @return $this
     */
    public function body($body)
    {
        $this->body = $body;
        return $this;
    }
}